home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DJGPP
/
DJSRC111.ZIP
/
go32
/
dpmi.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-29
|
2KB
|
68 lines
/* original Copyright(C) 1992 Hiroya Tsubakimoto
* modifications Copyright(C) 1993 Charles Sandmann
* Merged with GO32 V1.09+ C. Sandmann sandmann@clio.rice.edu
* Distributed under terms of "copying.dj" when distributed with GO32 source
* Distributed under terms of GPL if used in any other code */
typedef struct {
struct {
word8 minor, major;
} version;
word16 flags;
word16 cpu;
struct {
word8 slave, master;
} PIC;
} DPMIinfo;
typedef struct {
word32 address;
word32 bytes;
word32 handle;
} DPMImemory;
typedef struct {
word32 offset;
word16 selector;
} DPMIaddress;
typedef struct {
word32 largest_block;
word32 physical_mem;
word32 swap_mem;
} DPMImaxmeminfo;
extern int exitDPMI;
extern char use_DPMI;
/* real mode function(s) */
int initDPMI(DPMIinfo* info);
void DPMIprotectedMode(void);
int DPMIexecute(void);
int DPMIsetBreak(word16 sizetype, word32 addr);
int DPMIcancelBreak(int handle);
void Pmemget(word16 sel, word32 off, void* addr, word16 bytes);
void Pmemput(word16 sel, word32 off, const void* addr, word16 bytes);
void Pmemset(word16 sel, word32 off, word8 value, word32 bytes);
word16 Pmemscan(word16 sel, word32 off, word8 value, word16 bytes);
/* protected mode function(s) */
void uninitDPMI(int retcode);
void DPMIrealMode(void);
void DPMImaxmem(DPMImaxmeminfo*);
int DPMIalloc(DPMImemory* mem, word32 bytes);
int DPMIrealloc(DPMImemory* mem, word32 bytes);
void DPMIfree(DPMImemory* mem);
word16 DPMIselector(word16 number);
int DPMIassignSelector(word16 selector, word16 type, word32 base, word32 limit);
int DPMISelectorBase(word16 selector, word32 base);
void DPMIchangeException(word8 no, DPMIaddress* handler);
void DPMIchangeInterrupt(word8 no, DPMIaddress* handler);
void DPMIhandler(word8 no, DPMIaddress* handler);
void DPMIehandler(word8 no, DPMIaddress* handler);
void DPMIhandlerNPX(DPMIaddress* handler);
#define exit(n) ( exit(exitDPMI=(n)) )